<?xml version="1.0" encoding="utf-8"?>

<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:maml="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:doc="http://ddue.schemas.microsoft.com/authoring/internal" targetNamespace="http://ddue.schemas.microsoft.com/authoring/2003/5" blockDefault="#all" elementFormDefault="qualified" attributeFormDefault="unqualified" xml:lang="en">
  <!-- Schema documentation -->
  <annotation>
    <documentation>
      This schema describes MAML, the Microsoft Assistance Markup Language.
      MAML is intended for software documentation. In particular, it is 
      intended to accomodate the needs of Microsoft documentation.
    </documentation>
    <documentation>
      The schema is broken into three main areas: end user, developer and
      IT Pro. These areas adequaltely categorize Microsoft
      documentation.
    </documentation>
    <documentation>
      The namespace uri for this version of Maml is: http://ddue.schemas.microsoft.com/authoring/2003/5.
      Each backwards-incompatible revision to Maml will require that the date fields be appropriately
      incremented in uri of the updated version of the Maml schema.
    </documentation>
  </annotation>
  <include schemaLocation="developerStructure.xsd" />
  <include schemaLocation="developerReference.xsd" />
  <include schemaLocation="hierarchy.xsd" />
  <include schemaLocation="glossary.xsd" />
  <!--<include schemaLocation="conditionset.xsd" />-->
	
  <!-- ************ Reference Content Document Type ************ -->
  <complexType name="codeEntityDocumentType" mixed="false">
    <sequence>
      <element ref="maml:assembly" />
      <element ref="maml:codeEntities" />
    </sequence>
  </complexType>
  <element name="codeEntityDocument" type="maml:codeEntityDocumentType">
    <annotation>
      <documentation>
        This is the root element of a reference document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ How To Content Document Type ************ -->
  <complexType name="developerHowToDocumentType" mixed="false">
    <sequence>
      <!-- Always a title - but titles are stored outside the file -->
      <!-- Optional Search Results Summary -->
      <element ref="maml:summary" minOccurs="0" />
      <!-- Always an introduction -->
      <element ref="maml:introduction" />
      <!-- Optional procedures followed by optional code example
			but must have at least one procedure or code example -->
      <choice>
        <sequence>
          <!-- One or more procedures -->
          <choice minOccurs="1" maxOccurs="unbounded">
            <element ref="maml:procedure" />
            <element name="section" type="maml:procedureSectionType" />
          </choice>
          <!-- An optional code example -->
          <element ref="maml:codeExample" minOccurs="0" maxOccurs="unbounded" />
        </sequence>
        <element ref="maml:codeExample" maxOccurs="unbounded" />
      </choice>
      <element ref="maml:buildInstructions" minOccurs="0" />
      <element ref="maml:robustProgramming" minOccurs="0" />
      <element ref="maml:security" minOccurs="0" />
      <!-- Always a section for related items -->
      <element ref="maml:relatedTopics" />
    </sequence>
  </complexType>
  <element name="developerHowToDocument" type="maml:developerHowToDocumentType">
    <annotation>
      <documentation>
        This is the root element of a 'how to' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ Conceptual Document Type ************ -->
  <complexType name="developerConceptualDocumentType" mixed="false">
    <sequence>
      <!-- Always a title - but titles are stored outside the file -->
      <!-- Optional Search Results Summary -->
      <element ref="maml:summary" minOccurs="0" />
      <!-- Always an introduction -->
      <element ref="maml:introduction" />
      <!-- One or more sections -->
      <element ref="maml:section" minOccurs="0" maxOccurs="unbounded" />
      <!-- Always a section for related items -->
      <element ref="maml:relatedTopics" />
    </sequence>
  </complexType>
  <element name="developerConceptualDocument" type="maml:developerConceptualDocumentType">
    <annotation>
      <documentation>
        This element is the root of a 'conceptual' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ Walkthrough Document Type ************ -->
  <complexType name="developerWalkthroughDocumentType" mixed="false">
    <sequence>
      <!-- Always a title - but titles are stored outside the file -->
      <!-- Optional Search Results Summary -->
      <element ref="maml:summary" minOccurs="0" />
      <!-- Always an introduction -->
      <element ref="maml:introduction" />
      <!-- Optional Prerequisites section -->
      <element name="prerequisites" type="maml:namedSectionType" minOccurs="0" />
      <!-- One procedures and or section with procedure
			but must have at least one procedure or section with procedure -->
      <choice minOccurs="1" maxOccurs="unbounded">
        <element ref="maml:procedure" />
        <element ref="maml:section" />
      </choice>
      <!-- Optional Next Steps section -->
      <element name="nextSteps" type="maml:namedSectionType" minOccurs="0" />
      <!-- Always a section for related items -->
      <element ref="maml:relatedTopics" />
    </sequence>
  </complexType>
  <element name="developerWalkthroughDocument" type="maml:developerWalkthroughDocumentType">
    <annotation>
      <documentation>
        This element is the root of a 'walkthrough' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ Orientation Document Type ************ -->
  <complexType name="developerOrientationDocumentType" mixed="false">
    <sequence>
      <!-- Always a title - but titles are stored outside the file -->
      <!-- Optional Search Results Summary -->
      <element ref="maml:summary" minOccurs="0" />
      <!-- Always an introduction -->
      <element ref="maml:introduction" />
      <!-- Optional "In This Section" section -->
      <element name="inThisSection" type="maml:namedSectionType" minOccurs="0" />
      <!-- Optional Reference section -->
      <element name="reference" type="maml:namedSectionType" minOccurs="0" />
      <!-- Optional "Related Sections" section -->
      <element name="relatedSections" type="maml:namedSectionType" minOccurs="0" />
      <!-- Optional External Resources section -->
      <element name="externalResources" type="maml:externalResourcesType" minOccurs="0" />
      <!-- Optional section for related items -->
      <element ref="maml:relatedTopics" minOccurs="0" />
    </sequence>
  </complexType>
  <element name="developerOrientationDocument" type="maml:developerOrientationDocumentType">
    <annotation>
      <documentation>
        This element is the root of an 'orientation' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ Sample Document Type ************ -->
  <complexType name="developerSampleDocumentType" mixed="false">
    <sequence>
      <!-- Always a title - but titles are stored outside the file -->
      <!-- Optional Search Results Summary -->
      <element ref="maml:summary" minOccurs="0" />
      <!-- Always an introduction -->
      <element ref="maml:introduction" />
      <!-- Zero or more procedures -->
      <element ref="maml:procedure" minOccurs="0" maxOccurs="unbounded" />
      <!-- Optional Requirements section -->
      <element name="requirements" type="maml:namedSectionType" minOccurs="0" />
      <!-- Optional Demonstrates section -->
      <element name="demonstrates" type="maml:namedSectionType" minOccurs="0" />
      <!-- Optional code example -->
      <element ref="maml:codeExample" minOccurs="0" maxOccurs="unbounded" />
      <element ref="maml:section" minOccurs="0" maxOccurs="unbounded" />
      <!-- Always a section for related items -->
      <element ref="maml:relatedTopics" />
    </sequence>
  </complexType>
  <element name="developerSampleDocument" type="maml:developerSampleDocumentType">
    <annotation>
      <documentation>
        This element is the root of a 'sample' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ Troubleshooting Document Type ************ -->
  <complexType name="developerTroubleshootingDocumentType" mixed="false">
    <sequence>
      <!-- Always a title - but titles are stored outside the file -->
      <!-- Optional Search Results Summary -->
      <element ref="maml:summary" minOccurs="0" />
      <!-- Always an introduction -->
      <element ref="maml:introduction" />
      <!-- Zero or more sections -->
      <!-- Note: sections can contain procedures -->
      <element ref="maml:section" minOccurs="0" maxOccurs="unbounded" />
      <!-- Always a section for related items -->
      <element ref="maml:relatedTopics" />
    </sequence>
  </complexType>
  <element name="developerTroubleshootingDocument" type="maml:developerTroubleshootingDocumentType">
    <annotation>
      <documentation>
        This element is the root of a 'troubleshooting' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ Reference Without Syntax Document Type ************ -->
  <complexType name="developerReferenceWithoutSyntaxDocumentType" mixed="false">
    <sequence>
      <!-- Always a title - but titles are stored outside the file -->
      <!-- Optional Search Results Summary -->
      <element ref="maml:summary" minOccurs="0" />
      <!-- Always an introduction -->
      <element ref="maml:introduction" />
      <choice maxOccurs="unbounded">
        <element ref="maml:section" minOccurs="0" maxOccurs="unbounded" />
        <!-- Optional Remarks section -->
        <element name="languageReferenceRemarks" type="maml:namedSectionType" minOccurs="0" />
        <!-- Optional Code Example section -->
        <element ref="maml:codeExample" minOccurs="0" maxOccurs="unbounded" />
      </choice>
      <!-- Always a section for related items -->
      <element ref="maml:relatedTopics" />
    </sequence>
  </complexType>
  <element name="developerReferenceWithoutSyntaxDocument" type="maml:developerReferenceWithoutSyntaxDocumentType">
    <annotation>
      <documentation>
        This element is the root of a 'general reference' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ Reference With Syntax Document Type ************ -->
  <complexType name="developerReferenceWithSyntaxDocumentType" mixed="false">
    <sequence>
      <!-- Always a title - but titles are stored outside the file -->
      <!-- Optional Search Results Summary -->
      <element ref="maml:summary" minOccurs="0" />
      <!-- Always an introduction -->
      <element ref="maml:introduction" />
      <!-- Always a Syntax section -->
      <element ref="maml:syntaxSection" maxOccurs="unbounded" />
      <choice maxOccurs="unbounded">
        <!-- Optional Parameters section -->
        <element name="parameters" type="maml:namedSectionType" minOccurs="0" />
        <!-- Optional Return Value/Property Value section -->
        <element name="returnValue" type="maml:namedSectionType" minOccurs="0" />
        <!-- Optional Exceptions section -->
        <element name="exceptions" type="maml:namedSectionType" minOccurs="0" />
        <!-- Optional Remarks section -->
        <element name="languageReferenceRemarks" type="maml:namedSectionType" minOccurs="0" />
        <!-- Optional Code Example section -->
        <element ref="maml:codeExample" minOccurs="0" />
        <!-- Optional .NET Framework Equivalent section -->
        <element name="dotNetFrameworkEquivalent" type="maml:namedSectionType" minOccurs="0" />
        <!-- Optional Requirements section -->
        <element name="requirements" type="maml:namedSectionType" minOccurs="0" />
        <element ref="maml:section" minOccurs="0" maxOccurs="unbounded" />
      </choice>
      <!-- Always a section for related items -->
      <element ref="maml:relatedTopics" />
    </sequence>
  </complexType>
  <element name="developerReferenceWithSyntaxDocument" type="maml:developerReferenceWithSyntaxDocumentType">
    <annotation>
      <documentation>
        This element is the root of a document that contains reference and syntax.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ Error Message Document Type ************ -->
  <complexType name="developerErrorMessageDocumentType" mixed="false">
    <sequence>
      <!-- Always a title - but titles are stored outside the file -->
      <!-- Optional Non Localizable Error Title -->
      <element ref="maml:nonLocErrorTitle" minOccurs="0" />
      <!-- Optional Localizable Secondary Error Title -->
      <element ref="maml:secondaryErrorTitle" minOccurs="0" />
      <!-- Optional Search Results Summary -->
      <element ref="maml:summary" minOccurs="0" />
      <!-- Always an introduction -->
      <element ref="maml:introduction" />
      <!-- Zero or more procedures -->
      <element ref="maml:procedure" minOccurs="0" maxOccurs="unbounded" />
      <!-- Optional code example -->
      <element ref="maml:codeExample" minOccurs="0" maxOccurs="unbounded" />
      <!-- Always a section for related items -->
      <element ref="maml:relatedTopics" minOccurs="0" />
    </sequence>
  </complexType>
  <element name="developerErrorMessageDocument" type="maml:developerErrorMessageDocumentType">
    <annotation>
      <documentation>
        This element is the root of an 'error message' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ UI Reference Document Type ************ -->
  <complexType name="developerUIReferenceDocumentType" mixed="false">
    <sequence>
      <!-- Always a title - but titles are stored outside the file -->
      <!-- Optional Search Results Summary -->
      <element ref="maml:summary" minOccurs="0" />
      <!-- Always an introduction -->
      <element ref="maml:introduction" />
      <!-- Always a Task List section -->
      <element name="taskList" type="maml:namedSectionType" minOccurs="0" />
      <choice maxOccurs="unbounded">
        <!-- Optional sections -->
        <element ref="maml:section" minOccurs="0" maxOccurs="unbounded" />
        <!-- Always a UI Element List section -->
        <element name="uiElementList" type="maml:namedSectionType" />
      </choice>
      <!-- Always a section for related items -->
      <element ref="maml:relatedTopics" />
    </sequence>
  </complexType>
  <element name="developerUIReferenceDocument" type="maml:developerUIReferenceDocumentType">
    <annotation>
      <documentation>
        This element is the root of an 'UI reference' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ SDK Technology Overview Orientation Document Type ************ -->
  <complexType name="developerSDKTechnologyOverviewOrientationDocumentType" mixed="false">
    <sequence>
      <!-- Always a title - but titles are stored outside the file -->
      <!-- Optional Search Results Summary -->
      <element ref="maml:summary" minOccurs="0" />
      <!-- Always an introduction -->
      <element ref="maml:introduction" />
      <!-- One "In This Section" section -->
      <element name="inThisSection" type="maml:namedSectionType" />
      <!-- Optional Reference section -->
      <element name="reference" type="maml:namedSectionType" minOccurs="0" />
      <!-- Optional "Related Sections" section -->
      <element name="relatedSections" type="maml:namedSectionType" minOccurs="0" />
      <!-- Optional External Resources section -->
      <element name="externalResources" type="maml:externalResourcesType" minOccurs="0" />
    </sequence>
  </complexType>
  <element name="developerSDKTechnologyOverviewOrientationDocument" type="maml:developerSDKTechnologyOverviewOrientationDocumentType">
    <annotation>
      <documentation>
        This element is the root of an 'orientation' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>
  <!-- ************ SDK Technology Overview Technology Summary Document Type ************ -->
  <complexType name="developerSDKTechnologyOverviewTechnologySummaryDocumentType" mixed="false">
    <sequence>
      <!-- Always a title - but titles are stored outside the file -->
      <!-- Optional Search Results Summary -->
      <element ref="maml:summary" minOccurs="0" />
      <!-- Always an introduction -->
      <element ref="maml:introduction" />
      <!-- Always a Keywords section -->
      <element name="keywords" type="maml:namedSectionType" />
      <!-- Always a Namespaces section -->
      <element name="namespaces" type="maml:namedSectionType" />
      <!-- Optional Related Technologies section -->
      <element name="relatedTechnologies" type="maml:namedSectionType" minOccurs="0" />
      <!-- Always a Background section -->
      <element name="background" type="maml:namedSectionType" />
      <!-- Always an Implementing (Technology Name) Classes section -->
      <element name="implementingTechnologyNameClasses" type="maml:sectionType" />
      <!-- Always a (Technology Name) Classes at a Glance section -->
      <element name="technologyNameClassesAtAGlance" type="maml:sectionType" />
      <!-- Optional What's New section -->
      <element name="whatsNew" type="maml:namedSectionType" minOccurs="0" />
      <!-- Always a section for related items -->
      <element ref="maml:relatedTopics" />
    </sequence>
  </complexType>
  <element name="developerSDKTechnologyOverviewTechnologySummaryDocument" type="maml:developerSDKTechnologyOverviewTechnologySummaryDocumentType">
    <annotation>
      <documentation>
        This element is the root of a 'technology summary' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ SDK Technology Overview Architecture Document Type ************ -->
  <element name="developerSDKTechnologyOverviewArchitectureDocument" type="maml:developerConceptualDocumentType">
    <annotation>
      <documentation>
        This element is the root of an 'architecture' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ SDK Technology Overview Scenarios Document Type ************ -->
  <element name="developerSDKTechnologyOverviewScenariosDocument" type="maml:developerConceptualDocumentType">
    <annotation>
      <documentation>
        This element is the root of an 'scenarios' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ SDK Technology Overview Code Directory Document Type ************ -->
  <complexType name="developerSDKTechnologyOverviewCodeDirectoryDocumentType" mixed="false">
    <sequence>
      <!-- Always a title - but titles are stored outside the file -->
      <!-- Optional Search Results Summary -->
      <element ref="maml:summary" minOccurs="0" />
      <!-- Always an introduction -->
      <element ref="maml:introduction" />
      <!-- Always a Code List section -->
      <element name="codeList" type="maml:namedSectionType" />
      <!-- Always a section for related items -->
      <element ref="maml:relatedTopics" />
    </sequence>
  </complexType>
  <element name="developerSDKTechnologyOverviewCodeDirectoryDocument" type="maml:developerSDKTechnologyOverviewCodeDirectoryDocumentType">
    <annotation>
      <documentation>
        This element is the root of an 'UI reference' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ Whitepaper Document Type ************ -->
  <complexType name="developerWhitePaperDocumentType" mixed="false">
    <sequence>
      <element ref="maml:summary" minOccurs="0" />
      <element name="byline" type="maml:singleParagraphSimpleContentType" />
      <element name="date" type="maml:singleParagraphSimpleContentType" />
      <element name="summarySection" type="maml:namedSectionType" />
      <element name="downloadCenterLink" type="maml:namedSectionType" minOccurs="0" />
      <element name="appliesTo" type="maml:namedSectionType" minOccurs="0" />
      <element name="contents" type="maml:namedSectionType" minOccurs="0" />
      <element ref="maml:introduction" />
      <element ref="maml:section" minOccurs="0" maxOccurs="unbounded" />
      <element ref="maml:conclusion" />
      <element ref="maml:relatedTopics" minOccurs="0" />
      <element name="additionalInformation" type="maml:namedSectionType" minOccurs="0" />
      <element name="authorBio" type="maml:namedSectionType" minOccurs="0" />
      <!-- Always a title - but titles are stored outside the file -->
      <!-- Optional Search Results Summary -->
      <!-- Optional "Download Center/Sample Manager link" section -->
      <!-- Optional "Applies To" section -->
      <!-- Always an introduction -->
      <!-- Always a body section -->
      <!-- Optional Code Example section -->
      <!-- Always a conclusion -->
      <!-- Optional section for related items -->
    </sequence>
  </complexType>
  <element name="developerWhitePaperDocument" type="maml:developerWhitePaperDocumentType">
    <annotation>
      <documentation>
        This element is the root of a 'sample' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ Glossary Document Type ************ -->
  <complexType name="developerGlossaryDocumentType" mixed="false">
    <sequence>
      <element ref="maml:glossary" />
    </sequence>
  </complexType>
  <element name="developerGlossaryDocument" type="maml:developerGlossaryDocumentType">
    <annotation>
      <documentation>
        This element is the root of a 'glossary' document.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

  <!-- ************ XML Reference Document Type ************ -->
  <complexType name="developerXmlReferenceDocumentType" mixed="false">
    <sequence>
      <element ref="maml:summary" minOccurs="0" />
      <element ref="maml:introduction" />
      <element ref="maml:schemaHierarchy" minOccurs="0" />
      <element ref="maml:syntaxSection" />
      <element name="type" type="maml:singleParagraphSimpleContentType" minOccurs="0" />
      <element ref="maml:attributesandElements" />
      <element name="textValue" type="maml:namedSectionType" minOccurs="0" />
      <element name="remarks" type="maml:namedSectionType" minOccurs="0" />
      <element ref="maml:codeExample" minOccurs="0" maxOccurs="unbounded" />
      <element ref="maml:elementInformation" minOccurs="0" />
      <element ref="maml:relatedTopics" />
      <!-- Always a title - but titles are stored outside the file -->
      <!-- Optional Search Results Summary -->
      <!-- Always an introduction -->
      <!-- Always a section for related items -->
    </sequence>
  </complexType>
  <element name="developerXmlReference" type="maml:developerXmlReferenceDocumentType">
    <annotation>
      <documentation>
        This element is the root of a document that contains reference and syntax.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>section</doc:type>
      </appinfo>
    </annotation>
  </element>

</schema>